In recent years, it has become very easy to hold a videoconference or to make a video-phone call using a camera including a CMOS sensor that is connectable via a USB to a personal computer (hereafter called a PC). This is largely due to development of small CMOS-sensor cameras (so called Web cameras) having high pixel counts and equipped with USB interfaces that are commonly used as general-purpose interfaces of PCs. Reducing the sizes of Web cameras is especially important for use with notebook PCs and liquid crystal displays. This in turn makes it necessary to reduce the sizes of CMOS sensors, USB LSIs, and peripheral circuits that constitute Web cameras.
FIG. 13 shows an exemplary configuration of a conventional Web camera system. As shown in FIG. 13, a Web camera 105 includes an optical lens 101, a CMOS sensor 102, a USB controller 103, and a regulator 104. The Web camera 105 is connected via a USB interface in the USB controller 103 to a PC 106. A charge-coupled device (CCD) sensor may be used in place of the CMOS sensor 102.
FIG. 14 is a block diagram illustrating an exemplary internal configuration of the USB controller 103 shown in FIG. 13. As shown in FIG. 14, the USB controller 103 includes a CMOS sensor interface circuit 107, an image data FIFO 108, a USB interface circuit 109, a CPU 110, and a program ROM 111. The USB controller 103 may also include an erasable programmable read-only memory (EPROM) in addition to the program ROM 111.
The USB controller 103 is implemented as an LSI. The LSI is preferably designed to be connectable to various CMOS sensors and CCD sensors.
Meanwhile, to connect the USB controller 103 to various CMOS and CCD sensors, it is necessary to configure various settings (for example, addresses and data) for each of those sensors. Configuration of settings for a connected CMOS or CCD sensor (in this example, the CMOS sensor 102) is normally performed by the CPU 110 according to a program stored in the program ROM 111 via the CMOS sensor interface circuit 107 interfacing the CMOS sensor 102 and the USB controller 103. One disadvantage of the USB controller 103 is that since the program ROM 111 is a read-only memory, only programs preinstalled at the factory are available. This means that the USB controller 103 is adaptable only to predetermined types of sensors.
One way to solve the above problem is to provide a rewritable memory such as an EPROM or a RAM in a USB controller so that programs can be added or replaced after manufacturing (see, for example, patent document 1). However, adding an EPROM increases the production and testing costs of a USB controller. Also, using a RAM instead of an EPROM causes another problem, since programs in the RAM are lost when power to the USB controller is cut off.
Assuming that a Web camera operates with the USB protocol, after power is turned off and on, the Web camera is recognized again as a USB device by a PC. Since settings for its CMOS sensor (or a CCD sensor) are lost during this process, those settings must be reconfigured. Therefore, when using a RAM, it is necessary to reinstall programs constituting the firmware of the Web camera. One way to reinstall the programs is to download them from a host computer (see, for example, patent document 2). Another way is to transfer the programs from an external memory such as an EPROM (see, for example, patent document 3).
Reinstalling programs by downloading is a very cost-effective way. However, this method requires a dedicated downloading program on the host computer and some users do not like to install such a program in their host computers. On the other hand, with the latter method where an external memory such as an EPROM is used, a user can choose whether to install the external memory.    [Patent document 1] Japanese Patent Application Publication No. 2002-14833    [Patent document 2] Japanese Patent Application Publication No. 2006-190132    [Patent document 3] Japanese Patent Application Publication No. 2002-24159
Thus, using an external memory such as an EPROM is a simple but effective way to reinstall programs. However, to use an external memory, it is necessary to provide additional terminals or pins for connecting the external memory to the USB LSI. This may cause a problem when one reduces the size of a Web camera. One way to avoid an increase in the number of terminals or pins of a USB LSI is to use a serial electrically erasable programmable read-only memory (serial EEPROM) having a serial interface. However, since the data transfer rate of a serial EEPROM is very low and the start-up time of a USB device after power-on is very short, the amount of data that can be read from a serial EEPROM is limited.